1. Field of the Invention
This invention relates generally to information retrieval in a computer network. More particularly, it relates to an improved method for maintaining bookmarks in a Web browser for retrieving Web pages in an Internet environment.
2. Description of the Related Art
It is well known to couple computer systems into a network of computer systems so that the collective resources available within the network may be shared among users. The Internet has brought this sharing of computer resources to a much wider audience.
The World Wide Web, or simply “the Web”, is the Internet's information retrieval system; it is the most commonly used method of transferring data in the Internet environment. Client machines accomplish transactions to Web servers using the Hypertext Transfer Protocol (HTTP), which is a known application protocol providing users access to files (e.g., text, graphics, images, sound, video) using a standard page description language known as the Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify “links” to other servers and files. In the Internet framework, a network path to a server is identified by a Uniform Resource Locator (URL) having a specific syntax for defining a network connection.
Retrieval of information is generally achieved by the use of an HTML-compatible “browser”, e.g., Netscape Navigator, at a client machine. Web browsers have become the primary interface for access to many network and server services. When the user of the browser specifies a link via a URL, the client issues a request to the domain name service (DNS) to map a hostname in the URL to a particular Internet address (called an IP address) at which the server is located. The naming service returns a list of one or more IP addresses that can respond to the request. Using one of the IP addresses, the browser establishes a connection to a server. If the server is available, it returns a document or other object (often formatted according to HTML, which is the standard for Web page description, or more recently in XML with the help of an ancillary style sheet containing presentation instructions).
The entry of the URL in the entry field of a browser can be a difficult task for many users. While the URL for the main Web page of a major company can be relatively brief, e.g., http://www.ibm.com/, subsidiary pages can have very lengthy and non-intuitive URLs. As an example, the URL for the “Small Business Center” page, an internal page accessible from the main IBM web page, is as follows:    http://www-1.ibm.com/businesscenter/us/smbusapub.nsf/detailcontacts/SBCenter5988.Recognizing the difficulties involved, the developers of browsers have provided a useful means of returning to a favorite URL, by including with the browser the ability to create and store “bookmarks” (also called “favorites”) in the browser program.
Web browsers offer many options in the user interface for creating a bookmark list. Basic options let the user add and access a page through a pop-up menu on the location toolbar or through a menu pulldown from the main menu bar. A simple way to add a bookmark for a favorite page is to key in the desired URL to travel to the page and, once there, open the “Bookmarks” menu and choose the “Add Bookmarks” selection. This set of actions adds the URL of the current page as an item in the “Bookmarks” menu. Alternatively, instead of keying in the URL to travel to a page, the user might click on a “hyperlink” in a well known manner to travel to the Web page identified by the hyperlink. For example, from a home page, the user might click on a hyperlink to travel to an internal page within the website. Once on the desired page, the user can add the bookmark as described above.
Each browser has its own unique format for bookmarks. Netscape browsers, for example, place bookmarks in an HTML file as a table entry. The table entry may include other fields in addition to the URL to assist in the bookmark management process provided by the browser. Thus, the following Netscape bookmark entry:    <DT><A HREF=“http://st7.yahoo.net/alix/” ADD—DATE=“Aug. 30, 1999” LAST—VISIT=“Sep. 23, 2000” LAST—MODIFIED=“Dec. 22, 1999”>Alix Sales-Memory Cards</A>This bookmark directs the browser to the URL “http://st7.yahoo.net/alix/” and also carries the date on which the bookmark was added to the bookmark file (ADD—DATE-“Aug. 30, 1999”); the date the URL was last visited (LAST—VISIT=“Sep. 23, 2000”; and the date the URL was last changed (LAST—MODIFIED=“Dec. 22, 1999”) (the actual format used for designating the date may differ; the familiar “month-day-year” format shown is for the purpose of example only). The “name” of the bookmark, which is displayed to the user in the bookmark menu, is “Alix Sales-Memory Cards.”
Once created, bookmarks offer a means of quick page retrieval. The user can cause the browser to display the bookmark list and select among the bookmarks to go directly to a favorite page. Thus, the user is not forced to enter a lengthy URL nor retrace the original route through the Internet (i.e., hyperlink to hyperlink to hyperlink, etc.) by which he/she may have arrived at the Web site. Once a bookmark is added to a bookmark list, in general, the bookmark becomes a permanent part of the browser until removed. The permanence and accessibility of bookmarks have made them a valuable means for personalizing a user's Internet access through the browser.
Despite their usefulness, the current methods of implementing bookmarks are not without their flaws. There are several instances where a bookmark might become invalid. For example, a website owner may have temporarily or permanently moved or renamed the page; thus, the URL that was bookmarked will no longer exist, or may hold different content than it did when the web user bookmarked it. Alternatively, the website owner may have ceased operations and the website may actually no longer exist.
Using current browsers, when a bookmark is judged invalid by a user (e.g., after either failing to access the desired site or being redirected to a different site as discussed below), it is up to the user to decide whether to discard the bookmark (by deleting it from the bookmark list), update it to reflect the new information (by manually revising the URL associated with the bookmark), or create a new bookmark (using the “Add bookmark” option discussed above). To most users this is an annoyance; the average user does not wish to expend much effort in the tedious process of manually maintaining bookmarks.
The HTTP standard is the protocol used by a web server and a client browser to communicate over the Internet. HTTP has been in use by the World Wide Web global information initiative since 1990 and is defined in a series of specifications identified by their “request for comments” (RFC) number. For example, HTTP 1.0 is defined in “RFC 1945” published in May of 1996. While various other updates have been developed, e.g., HTTP 1.1 defined in RFC 2616, June, 1999, HTTP 1.0 is still the standard that is predominantly in use today. In the discussion below, HTTP 1.0 is assumed, unless indicated otherwise. However, the manner in which this invention may be applied using HTTP 1.1 or other standards will be obvious from the description or may be learned by practice of the invention.
Using the HTTP standard, information is exchanged between the browser and the server using “headers.” A typical HTTP transaction consists of a header followed optionally by an empty line and some data. The header will specify such things as the action required of the server or the type of data being returned, or a status code. The header contained in an HTTP transaction sent from a server in response to a transaction received from a browser is called a “response header.”
The HTTP standard defines, among other things, a “location” field in the response header. If the location field is present and contains a URL value, a HTTP return code of either “301” (moved permanently) or “302” (moved temporarily), and if the outstanding request code was “GET,” the browser is redirected to the specified URL. The HTTP standard further allows for a browser to optionally update the original link if it was in a local bookmark “container” such as a file or folder when the return code is “301”. This HTTP redirection method is infrequently used, however, because the majority of web servers do not have an easy way for content authors to indicate the need to send special headers and return codes in response to a request. As a result, a workaround was developed by web authors using the HTML “META” tag to direct the browser to simulate receiving HTTP fields as a way of specifying a redirected URL “location”. Essentially, the web author can use the META tag in an HTML document located at a particular URL (the original or target URL) to direct the browser to instead retrieve the document found at the URL identified in connection with the META tag (the redirect URL). However, since the HTML document containing the “META” tag (the document identified by the original URL) is actually delivered to the browser and hence is accompanied by a HTTP return code of “200” meaning that the request has succeeded (“OK”), redirecting a “location” in this manner does not actually cause a redirect and thus cannot invoke the update feature discussed above with respect to codes 301 or 302.
To solve this problem, an HTML header field called “refresh”, introduced by Netscape (see http://home.netscape.com/assist/net—sites/pushpull.html) and later adopted by most browsers, began to be used to cause the browser to reload the original URL after waiting a defined number of seconds. This led to the redirect markup technique, referred to as a “Meta Refresh,” used by almost all web authors today. The following is an example of HTML code for a Meta Refresh tag which “tells” the browser, as it renders the containing HTML web page, to react as if the HTTP response (“HTTP-EQUIV”) had a refresh header field containing “CONTENT”, a value which, in this example, would cause the browser to reload and render the page, in 2 seconds, from the specified URL:    <META HTTP-EQUIV=“REFRESH” CONTENT=“2; URL=HTTP://www.someware.com/new-page.html”>
While this method serves the purpose of redirecting the browser to the redirect URL identified in the Meta Refresh tag, the permanent/temporary context that the HTTP specification intended to provide via the “301” or “302” return code is lost, i.e., this can only be used to redirect the browser and does nothing with respect to the bookmark.
Accordingly, a need exists for a web browser which automatically updates bookmarks when the original URL with which they are linked is invalid and redirects the user of the browser to an alternate redirect URL.